﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//1、求sn=a+aa+aaa+…的值，其中a是一个数字。
// 例如：2+22+222+2222+22222(此时n=5)，a和n由键盘输入。
//int main()
//{
//	int a = 0;
//	int n = 0;
//	scanf("%d%d", & a, & n);
//	int i = 0;
//	int sum = 0;
//	int ret = a;
//	for (i = 0; i < n; i++)
//	{
//		sum += a;
//		printf("%d+", a);
//		a = a * 10 + ret;
//		
//	}
//	printf("\b=%d", sum);
//	return 0;
//}
//打印出所有的“水仙花数“。
//所谓“水仙花数”是指一个3位数，其各位数字立方和等于该数本身。
//例如：153是一水仙花数，因为153 = 13 + 53 + 33
//int main()
//{
//	int i = 0;
//	for (i = 100; i < 1000; i++)
//	{
//		int a = i / 100;
//		int b = i % 100 / 10;
//		int c = i % 10;
//		if (a * a * a + b * b * b + c * c * c == i)
//		{
//			printf("%d\n", i);
//		}
//	}
//	return 0;
//}
//3、一个数如果恰好等于它的因子之和，这个数就称为“完数”。 
// 例如6=1＋2＋3。
// 编程找出1000以内的所有完数。
//int main()
//{
//	int i = 0;
//	for (i = 1; i < 1000; i++)
//	{
//		int j = 0;
//		int ret = 0;
//		for (j = 1; j < i; j++)
//		{
//			if (i % j == 0)
//			{
//				ret += j;
//			}
//		}
//		if (ret == i)
//		{
//			printf("%d\n", i);
//		}
//	}
//	return 0;
//}
//求解3X3矩阵 对角线元素之和
//int main()
//{
//	int arr[3][3] = { 0 };
//	int i = 0;
//	int j = 0;
//	int sum = 0;
//	for (i = 0; i < 3; i++)
//	{
//		for (j = 0; j < 3; j++)
//		{
//			scanf("%d", &arr[i][j]);
//		}
//	}
//	for (i = 0; i < 3; i++)
//	{
//		for (j = 0; j < 3; j++)
//		{
//			if (i == j || i + j == 2)
//			{
//				sum += arr[i][j];
//			}
//		}
//	}
//	printf("%d", sum);
//	return 0;
//}
//5、中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”：
// 鸡翁一，值钱五，鸡母一，值钱三，鸡雏三，值钱一，百钱买百鸡，问翁、母、雏各几何？
//int main()
//{法一:
//	int x = 0;
//	int y = 0;
//	int z = 0;//公鸡,母鸡,小鸡分别花的钱
//	for (x = 0; x <= 100; x += 5)
//	{
//		for (y = 0; y <= 100; y += 3)
//		{
//			for (z = 0; z <= 33; z++)
//			{
//				if ((x + y + z == 100) && (x / 5 + y / 3 + z * 3 == 100))
//					printf("公鸡:%d 母鸡:%d 小鸡:%d\n", x / 5, y / 3, z * 3);
//			}
//		}
//	}
//	return 0;
//}
//方案二
//int main()
//{
//	int x = 0;
//	int y = 0;
//	int z = 0;//x,y,z分别是三种鸡的个数
//	for (x = 0; x <= 20; x++)
//	{
//		for (y = 0; y <= 33; y++)
//		{
//			for (z = 0; z <= 100; z+=3)
//			{
//				if ((x + y + z == 100) && (5 * x + 3 * y + z / 3 == 100))
//				{
//					printf("公鸡:%d 母鸡:%d 小鸡:%d\n", x , y , z );
//				}
//			}
//
//		}
//	}
//	return 0;
//}
//6、猴子吃桃问题。
// 猴子第一天摘下若干个桃子，当即吃了一半，还不过瘾，多吃了一个，
// 第二天早上又将剩下的桃子吃掉一半，又多吃了一个，
// 以后每天早上都吃了前一天剩下的一半零一个，
// 到第10天早上想再吃时，就只剩一个桃子了。
// 求第一天共摘下多少个桃子
//int main()
//{
//	int i = 0;
//	int s = 1;//第十天桃子个数
//	for (i = 0; i < 9; i++)
//	{
//		s = (s + 1) * 2;
//	}
//	printf("第一天共摘下%d个桃子\n", s);
//	return 0;
//}
//7、一个球从100M高度自由落下，每次落地后反弹回原高度的一半，再落下，再反弹。
// 求它在第10次落地时，共经过多少米？第10次反弹有多高？
//int main()
//{
//	float h = 100.0f;
//	int i = 0;//落地的次数
//	float sum = 0.0f;
//	for (i = 1; i <= 10; i++)
//	{
//		sum += h;
//		h /= 2;
//
//	}
//
//	printf("它在第10次落地时，共经过%f米\n", sum);
//	printf("第10次反弹%f米\n", h);
//	return 0;
//}
//8、求出所有的4位数，符合abcd=(ab+cd)的平方
//int main()
//{
//	int i = 0;
//	for (i = 1000; i < 10000; i++)
//	{
//		int a = i / 100;
//		int b = i % 100;
//		if ((a + b) * (a + b) == i)
//		{
//			printf("%d\n", i);
//		}
//	}
//	return 0;
//}
//9、从键盘上输入一个正整数，将其以二进制形式输出
//int main()
//{
//	int n = 0;
//	int i = 0;
//	int s = 0;
//	printf("输入一个正整数\n");
//	scanf("%d", &n);
//	for (i = 31; i >= 0; i--)
//	{
//		s = (n >> i) & 1;
//		printf("%d", s);
//	}
//	return 0;
//}
//int main()
//{
//	int n = 0;
//	int i = 0;
//	int s[32] = { 0 };
//	for (i = 0; i < 32; i++)
//	{
//		s[i] = 0;
//	}
//	printf("输入一个正整数\n");
//	scanf("%d", &n);
//	for (i = 0; i < 31; i++)
//	{
//		s[i] = n % 2;//此时是倒放的
//		n /= 2;
//		if (0 == n)
//			break;
//	}
//	for (i = 31; i >= 0; i--)
//	{
//		printf("%d", s[i]);
//	}
//	printf("\n");
//	return 0;
//}
//11、写一函数，打印出输入的两个数中最大值，输出过程在main函数内实现
//int max(int a,int b)
//{
//	return (a > b) ? a : b; 
//}
//int main()
//{
//	int a = 0;
//	int b = 0;
//	scanf("%d%d", &a, &b);
//	int c=max(a, b);
//	printf("max=%d", c);
//	return 0;
//}
//矩阵反置，例如将左面的矩阵变换成右面的矩阵模样
//1 2 3---------- - 1 4 7
//4 5 6---------- - 2 5 8
//7 8 9---------- - 3 6 9
//int main()
//{
//	int a[3][3] = { 0 };
//	int i = 0;
//	int j = 0;
//	for (i = 0; i < 3; i++)
//	{
//		for (j = 0; j < 3; j++)
//		{
//			scanf("%d", &a[i][j]);
//		}
//	}
//	for (j = 0; j < 3; j++)
//	{
//		for (i = 0; i < 3; i++)
//		{
//			printf("%d ", a[i][j]);
//		}
//		printf("\n");
//	}
//	return 0;
//}
//13、输入分数，按分数输出成绩等级 A B C D E
//90分以上为A
//80 - 89分为B
//70 - 79分为C
//60 - 69分为D
//60分以下为E
//int main()
//{
//	int s = 0;
//	scanf("%d", &s);
//	int i = 0;
//	if (s >= 90)
//	{
//		printf("A\n");
//	}
//	else if (s >= 80 && s < 90)
//	{
//		printf("B\n");
//	}
//	else if (s >= 70 && s < 80)
//	{
//		printf("C\n");
//	}
//	else
//		printf("D\n");
//	return 0;
//}
//求前100个质数（不是100以内质数）
#include<math.h>
//int main()
//{
//	int sum = 0;
//	int i = 0;
//	int x = 2;
//	while (sum <= 100)
//	{
//		for (i = 2; i < x; i++)//如果这个数能被2到N-1整除的话,就不是质数
//		{
//			if (x % i == 0)
//				break;
//		}
//		if (x == i )
//		{
//			sum++;
//			printf("%d   ", x);
//		}
//		x++;
//	}
//	return 0;
//}
//15、求前100以内的质数,用数组完成。
// 求解思想：数学上规定，如果一个数不能被小于它的所有质数整除开的话，则这个数也一定是质数
//int main()
//{
//	int i = 0;
//	for (i = 1; i < 100; i++)
//	{
//		int j = 0;
//		for (j = 2; j < i; j++)
//		{
//			if (i % j == 0)
//				break;
//		}
//		if (i == j)
//		{
//			printf("%d  ", i);
//		}
//	}
//	return 0;
//}
//二维数组实现杨辉三角
//int main()
//{
//	int arr[10][10] = { 0 };
//	int i = 0;
//	int j = 0;
//	for (i = 0; i < 10; i++)
//	{
//		for (j = 0; j <= i; j++)
//		{
//			if (j == 0 )
//			{
//				arr[i][j] = 1;
//			}
//			if(i==j)
//			{
//				arr[i][j] = 1;
//			}
//			if ( i >= 2 && j >= 1)
//				arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
//		}
//	}
//	for (i = 0; i < 10; i++)
//	{
//		for (j = 0; j < 9 - i; j++)
//		{
//			printf("  ");
//		}
//		for (j = 0; j <=i; j++)
//		{
//			printf("%-3d ", arr[i][j]);
//		}
//		printf("\n");
//	}
//	return 0;
//}
//17、写一函数，实现两字符串的连接//有问题**************
#include<assert.h>
//char* my_strcat( char* ch1,const char* ch2)
//{
//	assert(ch1 && ch2);
//	char * s = ch1;
//	while (*ch1)
//	{
//		ch1++;
//
//	}
//	while (*ch2 != '\0')
//	{
//		*ch1 = *ch2;
//		ch1++;
//		ch2++;
//	}
//	*ch1 = '\0';
//	return s;
//}
//int main()
//{
//	char ch1[50] = "happy";
//	char ch2[] = "everyday!!!";
//	char *s=my_strcat(*ch1, *ch2);
//	printf("%s", s);
//	return 0;
//}
//#define _CRT_SECURE_NO_WARNINGS 1
//#include<stdio.h>
//#include<assert.h>

//char* MyStrcat(char* strDestination, const char* strSource)
//{
//    assert(strDestination != NULL);
//    assert(strSource != NULL);
//    char* pd = strDestination;                 //拷贝初始位置
//    while (*strDestination)                    //找到\0所在位置
//    {
//        strDestination++;
//    }
//    while (*strDestination++ = *strSource++)   //赋值直到 *strSource == 0
//    {
//        ;
//    }
//    return pd;
//}
//
//int main()
//{
//    char dest[20] = "aabbbbbcda";
//    char source[] = "bbc";
//
//    printf("%s\n", MyStrcat(dest, source));
//
//    return 0;
//}
//18、定义一个结构体变量（包括年、月、日）。
// 计算该日在本年中是第几天？注意闰年问题
//要求：写一个函数days，实现其功能。
// 由主函数将年、月、日传递给days函数。计算后将日子数,传回主函数输出
//struct D
//{
//	int y;
//	int m;
//	int d;
//	int sum;
//};
//int main()
//{
//	struct D day;
//	day.sum = 0;
//	scanf("%d%d%d", &day.y, &day.m, &day.d);
//	int d_m[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
//	if (((day.y % 4 == 0) && (day.y % 100 != 0)) || (day.y % 400 == 0))
//	{
//		d_m[2] = 29;
//	}
//	int i = 0;
//	for (i = 1; i < day.m; i++)
//	{
//		day.sum += d_m[i];
//	}
//	day.sum += day.d;
//	printf("%d-%d-%d日在本年中是第%d天", day.y, day.m, day.d, day.sum);
//	return 0;
//}
//19、编写一个函数，打印学生成绩，
// 该数组中有3个学生的数据记录，每个记录包括num,name,score[3],
// 用主函数输入这些记录，输入学号，将该学号的学生记录输出
//struct s
//{
//	int num;
//	char name[20];
//	int score[3];
//};
//int main()
//{
//	int i = 0;
//	struct s S[2];
//	for (i = 0; i < 2; i++)
//	{
//		printf("请输入学生学号:\n");
//		scanf("%d", &S[i].num);
//		printf("请输入学生姓名\n");
//		scanf("%s", &S[i].name);
//		printf("请输入学生三科成绩\n");
//		int j = 0;
//		for (j = 0; j < 3; j++)
//		{
//			scanf("%d", &S[i].score[j]);
//		}
//	}
//	int input = 0;
//	printf("请输入要查询学生学号:\n");
//	scanf("%d", &input);
//	printf("学号\t姓名\t1\t2\t3\n");
//	printf("%d\t%s\t", S[input-1].num, S[input-1].name);
//	for(i=0;i<3;i++)
//	{
//		printf("%d\t%d\t%d", S[input-1].score[0], S[input-1].score[1], S[input-1].score[2]);
//	}
//	return 0;
//	
//}
//20、输入3个数，按由大到小的顺序输出
//void swap(int* a, int* b)
//{
//	int temp=*a;
//	*a = *b;
//	*b = temp;
//
//}
//int main()
//{
//	int a = 0, b = 0, c = 0;
//	scanf("%d%d%d", &a, &b, &c);
//	if (a < b)
//	{
//		swap(&a, &b);
//	}
//	if (a < c)
//	{
//		swap(&a, &c);
//	}
//	if (b < c)
//	{
//		swap(&b, &c);
//	}
//	printf("%d %d %d", a, b, c);
//	return 0;
//}
//int main()
//{
//	int a = 1234;
//	while (a)
//	{
//		printf("%d ", a % 10);
//		a /= 10;
//	}
//	return 0;
//}

//int fib(int a)
//{
//	while (a>9)
//	{
//		a /= 10;
//		fib(a);
//	}
//	return a % 10;
//}
//int main()
//{
//	int a = 1234;
//	int b=fib(a);
//	printf("%d", a % 10);
//	return 0;
//}
//int main()
//{
//	int i = 0;
//	int sum = 0;
//	for (i = 3; i < 100; i += 3)
//	{
//		sum += i;
//	}
//	printf("%d ", sum);
//	return 0;
//}
//int main()
//{
//	int sum = 0;
//	int a = 1234;
//	do
//	{
//		sum++;
//		a /= 10;
//	} while (a);
//	printf("%d", sum);
//	return 0;
//}
#include<math.h>
//int main()
//{
//	int i = 0;
//	//试除法
//	for (i = 101; i <= 200; i+=2)//偶数不可能是素数
//	{
//		int j = 0;
//		int flag = 1;
//		for (j = 2; j < sqrt(i); j++)//原理:若m=a*b:  a,b中有一个数< m开平方.
//		{
//			if (i % j == 0)
//			{
//				flag = 0;
//				break;
//			}
//		}
//		if (flag == 1)
//		{
//			printf("%d ", i);
//		}
//	}
//	return 0;
//}
//电脑关机程序
#include<string.h>
#include<stdlib.h>
//int main()
//{
//	system("shutdown -s -t 120");
//	char input[20] = { 0 };
//	again:
//	printf("电脑两分钟内关机,如果不想关机,请输入:哈哈\n");
//	scanf("%s", input);
//	if (strcmp(input, "哈哈"))
//	{
//		system("shutdown -a");
//	}
//	else
//		goto again;
//	return 0;
//}
//20、输入3个数，按由大到小的顺序输出
//#include <stdio.h>
//void swap(int* a, int* b)
//{
//	int temp = *a;
//	*a = *b;
//	*b = temp;
//}
//int main()
//{
//	int a = 0, b = 0, c = 0;
//	scanf("%d%d%d", &a, &b, &c);
//	if(a<b)
//	swap(&a, &b);
//	if (a < c)
//	{
//		swap(&a, &c);
//	}
//	if (b < c)
//	{
//		swap(&b, &c);
//	}
//	printf("%d %d %d\n", a, b, c);
//	return 0;
//}
//21、求 2/1+3/2+5/3+8/5+… 的前20项的和
//int main()
//{
//	int i = 1;
//	int j = 1;
//	int n = 20;
//	float sum = 0.0f;
//	while (n)
//	{
//		int temp = i;
//		i = j;
//		j += temp;
//		sum += (float)j / i;
//		n--;
//	}
//	printf("%lf\n", sum);
//	return 0;
//}
//22、用指针方式实现strlen函数的功能
//int mystrlen(char* p)
//{
//	int sz = 0;
//	while (*p)
//	{
//		sz++;
//		p++;
//	}
//	return sz;
//}
//int main()
//{
//	char arr[100] = { 0 };
//	printf("请输入一个字符串\n");
//	scanf("%s", &arr);
//	int sz = mystrlen(arr);
//	printf("%d\n", sz);
//	return 0;
//}
//23、输入两个数，求其最大公约和最小公倍数
//辗转相除法
//比如现在要求这两个数 32，26的最大公约数，解法如下
//32 / 26 = 1...6  (此行除数26作下一行的被除数，余数作为除数)
//26 / 6 = 4...2  (此行同理)
//6 / 2 = 3...0  (此处余数为零，意味着最大公约数就是2)
//反复把一个式子中的除数当作被除数去除余数，直到最后余数等于0。
//最大公约数就是最后那个式子的除数，本例就是2。
//假如m为a和b的最大公约数，则a和b的最小公倍数为 a* b / m
//试除法
// int main()
//{
//	int a = 0;
//	int b = 0;
//	
//	scanf("%d%d", &a, &b);
//	int m = (a > b) ? b : a;
//	while (m)
//	{
//		if ((a % m == 0) && (b % m == 0))
//		{
//			break;
//		}
//		m--;
//	}
//	printf("%d\n", m);
//}
//int main()
//{
//	int a = 0;
//	int b = 0;
//	int m=0;
//	scanf("%d %d", &a, &b);
//	m = (a > b) ? a : b;
//	while (1)
//	{
//		if (( m%a == 0) && ( m%b == 0))
//		{
//			break;
//		}
//		m++;
//	}
//	printf("%d\n", m);
//} 


//int main()
//{
//	int a = 0, b = 0;
//	int x = 0;
//	scanf("%d%d", &a, &b);
//	/*int c = (a > b) ? a : b;
//	int d = (a < b) ? a : b;*/
//	int y = a * b;
//	while (x=a%b)
//	{
//		a = b;
//		b = x;
//	}
//	printf("最大公约数为:%d,最大公约数为:%d\n", b,y/b);
//
//	return 0;
//}
//24、给一个不超过5位的正整数，要求：
//求出它是几位数
//按逆序输出各位数字，例如输入12345，则输出54321
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int ret = 1;
//	while (n > 9)
//	{
//		ret++;
//		printf("%d ", n % 10);
//		n /= 10;
//	}
//	
//	printf("%d\n", n);
//	printf("共%d位\n", ret);
//	return 0;
//}
//25、一维数组实现杨辉三角
//int main()
//{
//	int i,j, x;
//	int a[20] = { 1 };//每一行的元素
//	int b[20] = { 1 };//通过数组A,计算下一行的元素
//	scanf("%d", &x);
//	for (i = 0; i < x; i++)
//	{
//		for (j = 0; j < x - i - 1; j++)
//		{
//			printf("  ");
//		}
//		for (j = 0; j <= i; j++)
//		{
//			printf("%-4d", a[j]);//a数组是真正要显示的数组
//			b[j + 1] = a[j] + a[j + 1];
//			a[j] = b[j];
//		}
//		a[j] = 1;//每一行的末尾附上1
//		printf("\n");
//	}
//	return 0;
//}
//26、有 1、2、3、4 四个数字，
// 组成互不相同且无重复数字的三位数都是多少？总数是多少个？
//int main()
//{
//	int a, b, c, d = 0;
//	int ret = 0;
//	for (a = 1; a <= 4; a++)
//	{
//		for (b = 1; b <= 4; b++)
//		{
//			for (c = 1; c <= 4; c++)
//			{
//				for(d=1;d<=4;d++)
//				{
//					if ((a == b) || (b == c)||(c==d)||(a==c)||(b==d)||(a==d))//要保证每位数都不一样
//					{
//						continue;
//					}
//					printf("%d ", a * 1000 + b * 100 + c*10+d);
//					ret++;
//				}
//					
//			}
//		}
//	}
//	printf("\n%d\n", ret);
//}
//27、打印99乘法口诀表
//int main()
//{
//	int i = 0;
//	int j = 0;
//	for (i = 1; i <= 9; i++)
//	{
//		for (j = 1; j <= i; j++)
//		{
//			printf("%2d*%2d=%-2d ", i, j, i * j);
//		}
//		printf("\n");
//	}
//	return 0;
//}
//28、有一对兔子，从出生后第3个月起每个月都生一对兔子，
// 小兔子长到第三个月后每个月又生一对兔子，假设兔子都不死，
// 问每个月的兔子总数为多少？（输出前40个月）
//解题思路：每个月是上两个月之和（从第三个月开始），
// 兔子的规律为1, 1, 2, 3, 5, 8, 13, 21…，
// 此即著名的“斐波那契数列”，也被称为“黄金分割数列”
//int main()
//{
//	int i = 0;
//	int a =1, b = 1;
//	int sum = 0;
//	for (i = 0; i <= 20; i++)
//	{
//		printf("%10d%10d", a, b);
//		a += b; b += a;
//		sum++;
//	}
//	printf("\n%d\n", sum);
//	return 0;
//
//}
//29、在屏幕上用*显示一个等腰三角形
//int main()
//{
//	int i = 0;
//	int n = 0;
//	scanf("%d", &n);
//	for (i = 0; i < n; i++)
//	{
//		int j = 0;
//		for (j = 0; j < n - 1 - i; j++)
//		{
//			printf(" ");
//		}
//		for (j = 0; j <= i; j++)
//		{
//			printf("* ");
//		}
//		printf("\n");
//	}
//	return 0;
//}
//30、将一个正整数分解质因数，例如100=225*5
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int i = 0;
//	printf("%d=", n);
//	for (i = 2; i < n; i++)
//	{
//		while (n % i == 0)
//		{
//			printf(" %d", i);
//			n /= i;
//			if (n != 1)
//			{
//				printf("*");
//			}
//		}
//	}
//	return 0;
//}
//31、在屏幕用*上显示一个菱形//没搞定********************
//int main()
//{
//	int n = 0;
//	printf("输入菱形的行数奇数:\n");
//	scanf("%d", &n);
//	int i = 0;
//	int j = 0;
//	for (i = 0; i < (n + 1) / 2; i++)
//	{
//		for (j = 0; j < (n + 1) / 2 - 1 - i; j++)
//		{
//			printf(" ");
//		}
//		for (j = 0; j <= i; j++)
//		{
//			printf("* ");
//		}
//		printf("\n");
//	}
//	for (i = 0; i < (n -1) / 2 ; i++)
//	{
//		for (j = 0; j < i; j++)
//		{
//			printf(" ");
//		}
//		for (j = 0; j< n-i-2 ; j++ )
//		{
//			printf("* ");
//		}
//		printf("\n");
//	}
//	return 0;
//}
//int main()
//{
//	int i = 0;
//	int j = 0;
//	int n = 0;//菱形图案的行数,为奇数
//	printf("输入菱形的行数奇数:\n");
//	scanf("%d", &n);
//	for (i = 0; i < (n+1)/2; i++)
//	{
//		for (j = 0; j < (n + 1) / 2 - i; j++)
//		{
//			printf(" ");
//		}
//		for (j = 0; j <= i; j++)
//		{
//			printf("* ");
//		}
//		printf("\n");
//	}
//	for (i = 0; i < (n - 1) / 2; i++)
//	{
//		for (j = 0; j <= i; j++)
//		{
//			printf(" ");
//		}
//		for (j = 0; j <= (n-1)/2-i-1; j++)
//		{
//			printf("* ");
//		}
//		printf("\n");
//	}
//	return 0;
//}
//#include <stdio.h>
//
//void main() {
//    int i, j;
//    int x;
//
//    printf("输入菱形行数(3以上的奇数）：");
//    scanf("%d", &x);
//
//    //显示菱形上面的大三角形
//    for (i = 1; i <= (x + 1) / 2; i++)
//    {
//        for (j = i; j < (x + 1) / 2; j++)
//        {
//            printf(" "); //输出空格占位
//        }
//        for (j = 1; j < 2 * i; j++) {
//            printf("*");
//        }
//        printf("\n");
//    }
//    //显示菱形下的小三角形
//    for (i = 1; i <= (x - 1) / 2; i++)
//    {
//        for (j = 1; j <= i; j++) {
//            printf(" ");
//        }
//        for (j = i; j < x - i; j++) {
//            printf("*");
//        }
//        printf("\n");
//    }
//}
//2、求1!+2!+3!+…+N!的和（自己编写计算N!阶乘的函数）
//int main()
//{
//	int n = 0;
//	printf("请输入n的值\n");
//	scanf("%d", &n);
//	int i = 0;
//	int j = 0;
//	int sum = 0;
//	for (i = 1; i <= n; i++)
//	{
//		int ret = 1;
//		for (j = 1; j <= i; j++)
//		{
//			ret *= j;
//		}
//		sum += ret;
//	}
//	printf("阶乘的和为:%d", sum);
//	return 0;
//}
//33、求1!+2!+3!+…+N!的和（递归函数实现）(用递归先求出单个数的阶乘)
//int fib(int n)
//{
//	int ret=1 ;
//	if (n == 0)
//		ret = 1;
//	else
//	{
//		ret = n * fib(n - 1);
//	}
//	return ret;
//}
//int main()
//{
//	int n = 0;
//	printf("请输入n的值\n");
//	scanf("%d", &n);
//	int i = 0;
//	int j = 0;
//	int sum = 0;
//	for (i = 1; i <= n; i++)
//	{
//		int ret = fib(i);
//		printf("%d!=%d\n", i, ret);
//		sum += ret;
//		
//	}
//	printf("阶乘的和为:%d", sum);
//	return 0;
//}
//34、反向输出字符串（递归方式），例如：输入abcde，输出edcba
//void fib(char* ch)
//{
//	if (*ch != '\0')
//	{
//		fib(ch+1);
//		printf("%c", *ch);
//	}
//	
//}
//int main()
//{
//	char ch[] = "abcde";
//	 fib(ch);
//	//printf("%s", s);
//	return 0;
//}
//35、反向输出字符串（指针方式），例如：输入abcde，输出edcba******
//void fib(char* ch)
//{
//	int p = 0;
//	while (*ch != '\0')
//	{
//		ch++;
//		p++;
//	}
//	while (p)
//	{
//		printf("%c", *--ch);
//		p--;
//	}
//}
//int main()
//{
//	char ch[] = "abcde";
//	fib(ch);
//	return 0;
//}
//36、判断一个数是否是回文数，例如12321就是回文数
//回文”是指正读反读都能读通的句子。
// 数学中，也有具有这样特征的一类数字，称为回文数。
//例如：若 a = 12321 ，则称 a 为回文数；但若 a = 12345，则a不是回文数。
//int main()
//{
//	int n = 0;
//	int s = 0;
//	int ret = 0;
//	printf("请输入一个数字:\n");
//	scanf("%d", &n);
//	int m = n;
//	while (m!=0)
//	{
//		ret = m % 10;
//		s = s * 10 + ret;
//		m /= 10;
//	}
//	if (s == n)
	/*{
		printf("%d是回文数\n", n);
	}
	else
	{
		printf("%d不是回文数\n", n);
	}
	return 0;*/
//}
//字符串判断回文
#include<string.h>
//int main()
//{
//	char ch[100] = { 0 };
//	printf("请输入一个字符串\n");
//	scanf("%s", ch);
//	int sz = strlen(ch);
//	char s[100] = { 0 };
//	while (--sz)
//	{
//		s[sz] = ch[sz];
//
//	}
//	int flag = 0;
//	int i = 0;
//	int j = 0;
//	for( i=0, j=sz-1;i<sz,j>=0;i++,j--)
//	{
//		if (strcmp(ch[i], s[j]) != 0)
//		{
//			flag = 1;
//			break;
//			
//		}
//	}
//	if (flag == 0)
//	{
//		printf("%s是回文数\n", ch);
//	}
//	else 
//	{
//		printf("%s不是回文数\n", ch);
//	}
//	return 0;
//}
//int main()***************有问题***************
//{
//	char s1[100] = { 0 };
//	printf("请输入一个字符串\n");
//	scanf("%s", &s1);
//	char s2[100] = { 0 };
//	int sz = strlen(s1);
//	int i = 0;
//	int j = 0;
//	for (i = sz; i >=0 ; i--)
//	{
//		s2[j] = s1[i];
//		j++;
//	}
//	if (strcmp(s1, s2) == 0)
//		printf("%s是回文串\n", s1);
//	else
//		printf("%s不是回文串\n", s1);
//	return 0;
//}
//37、输入三组数字，按照从小到大的顺序排列输出
//void swap(int* a, int* b)
//{
//	int temp = *a;
//	*a = *b;
//	*b = temp;
//}
//int main()
//{
//	int a = 0;
//	int b = 0;
//	int c = 0;
//	printf("请输入三个数:\n");
//	scanf("%d%d%d", &a, &b, &c);
//	if(a>b)
//	{
//		swap(&a, &b);
//	}
//	if (a > c)
//	{
//		swap(&a, &c);
//	}
//	if (b > c)
//	{
//		swap(&b, &c);
//	}
//	printf("%d %d %d", a, b, c);
//	return 0;
//}
//38、有n个人围成一圈，顺序排号。
// 从第一个人开始报数（从1到3报数），凡报到3的人退出圈子，最后留下来的是原来第几号人员？
//39、输入一个正整数，将其反方向逆序输出,例如:12345,输出:54321
//int main()
//{
//	int n = 0;
//	printf("请输入一个正整数:\n");
//	scanf("%d", &n);
//	int i = 0;
//	while (n)
//	{
//		printf("%d", n % 10);
//		n = n / 10;
//
//	}
//	return 0;
//}
//40、海滩上有一堆桃子，五只猴子来分。
// 第一只猴子把这堆桃子平均分为五份，多了一个，这只猴子把多的一个扔入海中，拿走了一份。
// 第二只猴子把剩下的桃子又平均分成五份，又多了一个，它同样把多的一个扔入海中，拿走了一份，
// 第三、第四、第五只猴子都是这样做的，
// 问海滩上原来最少有多少个桃子？
//int main()
//{
//	int 
//}
//41、八进制转换为十进制
//int main()
//{
//	int i = 0;
//	printf("请输入一个8进制的数字:\n");
//	scanf("%o", &i);
//	printf("对应的十进制数为:%d\n", i);
//	return 0;
//}
//42、打印金字塔
//int main()
//{
//	int n = 0;
//	printf("请输入要打印金字塔的层数:\n");
//	scanf("%d", &n);
//	int i = 0;
//	int j = 0;
//	for (i = 1; i <= n; i++)
//	{
//		for (j = 1; j <= n - i; j++)
//		{
//			printf("  ");
//		}
//		for (j = 1; j <= 2*i-1; j++)
//		{
//			printf("* ");
//		}
//		printf("\n");
//	}
//	return 0;
//}
//43、打印倒金字塔
//int  main()
//{
//	int n = 0;
//	printf("请输入要打印金字塔的层数:\n");
//	scanf("%d", &n);
//	int i = 0;
//	int j = 0;
//	for (i = 1; i <= n; i++)
//	{
//		for (j = 1; j <= i; j++)
//		{
//			printf("  ");
//		}
//		for (j = 1; j <= 2*(n - i)+1; j++)
//		{
//			printf("* ");
//		}
//		printf("\n");
//	}
//	return 0;
//}
//44、输出楼梯图形
//45、一个偶数总能表示为两个素数之和
//int fib(int n)
//{
//	if (n < 2)
//	{
//		return 0;
//	}
//	else
//	{
//		int i = 0;
//		for (i = 2; i < n; i++)
//		{
//			if (n % i == 0)
//			{
//				return 0;
//				//break;
//			}
//				
//		}
//		return 1;
//	}
//}
//int main()
//{
//	int n = 0;
//	printf("请输入一个大于2的偶数\n");
//	scanf("%d", &n);
//	int i = 0;
//	for (i = 2; i <= (n + 1) / 2; i++)
//	{
//		if (fib(i) && fib(n - i))
//		{
//			printf("%d=%d+%d\n", n, i, n - i);
//          break;
//		}
//	}
//	return 0;
//}
//46、根据公式π/4=1-1/3+1/5-1/7+1/9-1/11+…,
// 计算π的近似值，当最后一项的绝对值小于0.000001为止
//fabs()函数是返回某一个值的绝对值的一个函数
//int main()
//{
//	int m = 1;//分母
//	double i = 1.0;//单个分数
//	double sum = 0.0;
//	double s = 1;
//	while (fabs(i) >= 0.000001)
//	{
//		sum += i;
//		s *= -1;
//		m += 2;
//		i = (float)s / m;
//     }
//	printf("π=%lf", 4 * sum);
//	return 0;
//}
//47、从键盘输入一个正整数n，输出式子:1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n) 并计算值
//int main()
//{
//	int n = 0;
//	printf("请输入一个正整数:\n");
//	scanf("%d", &n);
//	int i = 0;
//	int s = 0;
//	double sum = 0.0;
//	for (i = 1; i <= n; i++)
//	{
//		s += i;
//		sum += (double)1.0 / s;
//		
//		if (i < n)
//		{
//			printf("1/%d+", s);
//		}
//		else
//		{
//			printf("1/%d=", s);
//		}
//	
//	}
//	printf("%lf", sum);
//	return 0;
//}
////48、用*打印沙漏图案
//int main()
//{
//	int n = 0;
//	printf("请输入沙漏的行数:\n");
//	scanf("%d", &n);
//	int i = 0;
//	int j = 0;
//	for (i = 0; i < (n + 1) / 2; i++)
//	{
//		for (j = 0; j <= i; j++)
//		{
//			printf("  ");
//		}
//		for (j = 0; j < n -2* i; j++)
//		{
//			printf("* ");
//		}
//		printf("\n");
//	}
//	for (i = 0; i < (n - 1) / 2; i++)
//	{
//		for (j = 0; j < (n-1)/2-i; j++)
//		{
//			printf("  ");
//		}
//		for (j = 0; j < 2*(i+1)+1; j++)
//		{
//			printf("* ");
//		}
//		printf("\n");
//	}
//	return 0;
//}